import os
import json
from click import prompt
from openai import OpenAI

# from news_load import NewsLoad


def call_qwen(prompt:str,load):
    try:
        # 在函数内部导入，避免循环导入
        from news_load import NewsLoad
        client = OpenAI(
            # 若没有配置环境变量，请用阿里云百炼API Key将下行替换为：api_key="sk-xxx",
            # 新加坡和北京地域的API Key不同。获取API Key：https://help.aliyun.com/zh/model-studio/get-api-key
            api_key="sk-43e5ed382265452bbad5922bfe2f8840",
            # 以下是北京地域base_url，如果使用新加坡地域的模型，需要将base_url替换为：https://dashscope-intl.aliyuncs.com/compatible-mode/v1
            base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
        )

        completion = client.chat.completions.create(
            model="qwen-plus",  # 模型列表：https://help.aliyun.com/zh/model-studio/getting-started/models
            messages=[
                {'role': 'system', 'content': '你是一个专业的新闻分析师，请你生成今日导览摘要'},
                {'role': 'user', 'content': prompt}
            ],
            max_tokens=500,     # 最大生成token数（确保摘要在300-500字）
            temperature=0.7     # 温度（0.7为平衡准确性和流畅性的推荐值）
        )
        # 获取生成的摘要内容
        summary_content = completion.choices[0].message.content

        # 将摘要转换为JSON字符串并存储
        summary_json = json.dumps(summary_content, ensure_ascii=False)

        # 存储到NewsLoad对象中（这里假设按类别存储，也可以按其他方式存储）
        # 例如：将整体摘要存储为"overall"类别
        load.today_summary = summary_json

        print(f"生成的摘要: {summary_content}")
        print(f"已存储摘要到NewsLoad对象")

    except Exception as e:
            print(f"错误信息：{e}")
            print("请参考文档：https://help.aliyun.com/zh/model-studio/developer-reference/error-code")